<template>
  <div class="main">
      <el-form :inline="true" :model="reportformsDto" class="demo-form-inline" style="margin-top: 1%; margin-left: 1%;">
          <el-form-item label="申请人名字">
              <el-input v-model="reportformsDto.user_name" placeholder="申请人名字"></el-input>
          </el-form-item>

          <el-form-item label="发布时间" style="margin-left: 10px;">
              <el-date-picker v-model="time" type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期" value-format ="yyyy-MM-dd HH:mm:ss"
                  :default-time="['12:00:00']" @change="onConfirm" >
              </el-date-picker>
          </el-form-item>
          <el-form-item>
              <el-button type="primary" @click="onSubmit">查询</el-button>
          </el-form-item>
      </el-form>


      <el-table :data="list" border style="width: 100%">
          <el-table-column fixed prop="user_name" label="申请人名字" align="center">
          </el-table-column>
          <el-table-column fixed prop="titile" label="报表标题" align="center">
          </el-table-column>
          <el-table-column prop="type" label="报表类型" align="center">
              <template slot-scope="scope">
                  <span style="margin-left: 10px" v-show="scope.row.type ===1">工作计划</span>
                  <span style="margin-left: 10px" v-show="scope.row.type ===2">总结</span>
                  <span style="margin-left: 10px" v-show="scope.row.type ===3">专项活动</span>
              </template>
          </el-table-column>
          <el-table-column prop="pulish_time" label="申请时间" align="center">
          </el-table-column>
          <el-table-column fixed prop="satrt_time" label="开始时间" align="center">
          </el-table-column>
          <el-table-column fixed prop="end_time" label="结束时间" align="center">
          </el-table-column>
          <el-table-column fixed="right" label="操作">
              <template slot-scope="scope" align="center">
                <el-button @click="showNotice(scope.row)" type="text" size="small">查看</el-button>
              </template>
          </el-table-column>
      </el-table>
      <div class="block" style="margin-top: 1%; margin-left: 30%;" v-show=" !this.total === 0">
          <el-pagination
               :page-sizes="[5, 10, 20, 30]"
              layout="total, sizes, prev, pager, next, jumper" :total="total">
          </el-pagination>
      </div>
  </div>
</template>

<script>
import reportformsRequsrtApi from '@/api/reportformsRequsrt'
import getStorage from '@/utils/getStorage'
export default {
  // 组件名称
  name: 'MyReportForms',
  // 组件参数 接收来自父组件的数据
  props: {},
  // 局部注册的组件
  components: {},
  // 组件状态值
  data() {
      return {
          reportformsDto:{
              type:null,
              opinion:null,
              satrt_time:'',
              end_time:'',
              user_name:'',
              user_id:null,
          },
          total:null,
          list: [],
          time: [],
      }
  },
  // 计算属性
  computed: {},
  // 侦听器
  watch: {

  },
  // 组件方法
  methods: {
      //用户同意报表
      pass(val){
          val.opinion = 2;
          reportformsRequsrtApi.superiorApprovalReportForms(val).then(res=>{
              this.$message('操作成功!');
              this.updateList();
          })
      },
      //用户不同意报表
      unpass(val){
          val.opinion = 1;
          reportformsRequsrtApi.superiorApprovalReportForms(val).then(res=>{
              this.$message('操作成功!');
              this.updateList();
          })
      },


      //当用户确定时间的选定的时候触发这个方法，给选择selection中的starttime,和endtime赋值
      onConfirm(val){
          this.reportformsDto.satrt_time = val[0];
          this.reportformsDto.end_time = val[1];
      },
      //主动查询信息
      onSubmit() {
          this.updateList();
      },
      //跟新页面数据
      updateList() {
          reportformsRequsrtApi. getReportForms(this.reportformsDto).then(res => {
              //数据赋初始化值
              console.log(res);
              this.list = res.data.list;
              this.total =res.data.total;
              // this.selectConditon.total = res.data.total;
              // this.tableData = res.data.list;
          })
      },
      //查看通知详情页面
      showNotice(row) {
          console.log(row.context);
          this.$router.push({
              path: "/noticedetails",
              query: {
                  context: row.context
              }
          })
      },
  },
  // 以下是生命周期钩子   注：没用到的钩子请自行删除
  /**
  * 在实例初始化之后，组件属性计算之前，如data属性等
  */
  beforeCreate() {
  },
  /**
  * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
  */
  created() {

  },
  /**
  * 在挂载开始之前被调用：相关的 render 函数首次被调用。
  */
  beforeMount() {

  },
  /**
  * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
  * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
  */
  mounted() {
      //给user_id赋值
      this.reportformsDto.user_id = getStorage.getAxiosUserId();
      this.updateList();
  },
  /**
  * 数据更新时调用，发生在虚拟 DOM 重新渲染和打补丁之前。
  * 你可以在这个钩子中进一步地更改状态，这不会触发附加的重渲染过程。
  */
  beforeUpdate() {
  },
  /**
  * 由于数据更改导致的虚拟 DOM 重新渲染和打补丁，在这之后会调用该钩子。
  * 当这个钩子被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。
  */
  updated() {
  },
  /**
  * keep-alive 组件激活时调用。 仅针对keep-alive 组件有效
  */
  activated() {
  },
  /**
  * keep-alive 组件停用时调用。 仅针对keep-alive 组件有效
  */
  deactivated() {
  },
  /**
  * 实例销毁之前调用。在这一步，实例仍然完全可用。
  */
  beforeDestroy() {
  },
  /**
  * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
  * 所有的事件监听器会被移除，所有的子实例也会被销毁。
  */
  destroyed() {
  }
}
</script> 


<style scoped ></style>